// 方法一.暴力破解
// var removeElement = function(nums, val) {
//     let length=nums.length
//     for(let i=0;i<length;i++){
//         if(nums[i]==val){
//             for(let j=i;j<length-1;j++){
//                 nums[j]=nums[j+1]
//             }
//             length--
//             i--
//         }
//     }
//     return length
// };

// 双指针
// var removeElement = function(nums, val) {
//     let slow=0
//     let length=nums.length

//     for(let fast=0;fast<length;fast++){
//         if(nums[fast]!=val){
//             nums[slow++]=nums[fast]
//         }
//     }
//     return slow
// };
var removeElement = function(nums, val) {
    let left=0,right=nums.length-1
    while(left<=right){
        // 找左边等于val的数
        while(left<=right&&nums[left]!=val){
            left++
        }

        // 找右边不等于val的数
        while(left<=right&&nums[right]==val){
            right--
        }

        // 右边的值赋给左边
        if(left<=right) nums[left++]=nums[right--]
    }
    return left
};
let arr=[1,1,2,3,1,4,5]
console.log(removeElement(arr,1));
console.log(arr);